# Filename: backup_ver4.py
import os
import time
import shutil
import sys
import datetime


# 时间格式
#time_format = "%a %b %d %H:%M:%S %Y"
# 取得当前时间
#today = datetime.datetime.now()

# 1.需要备份的文件目录
source = ['F:\\python\\code']

# 2. 备份文件到目标路径
target_dir = 'F:\\python\\backup\\'

# 3. The files are backed up into a zip file.
# 4. The current day is the name of the subdirectory in the main directory
#today = target_dir + time.strftime('%Y%m%d')
#today = time.strftime('%Y-%m-%d')
#bkname = ['code']
# The current time is the name of the zip archive
now = time.strftime('%H%M%S')

# Take a comment from the user to create the name of the zip file
#comment = input('Enter a comment -->')
comment = 'code'
if len(comment)==0: 
    target = today+os.sep+now+'.zip'
else:
   # target = today+os.sep+now+'_'+\
   #         comment.replace(' ','_')+'.zip'
     target = target_dir+os.sep+comment.replace(' ','_')+\
             '_'+'-'+now+'.zip'
   #target = target_dir+os.sep+comment.replace(' ','_')+'_'+\
   #          today+'_'+now+'.zip'
    #target = target_dir+os.sep+\
    #         today+'.zip'


    # Notice the backslash!

# Create the subdirectory if it isn't already there
#if not os.path.exists(today):
#    os.mkdir(today)  # make directory
#    print('Successfully created directory', today)

# 5. 用winrar的rar命令压缩文件，但首先要安装有winrar且设置winrar到环境变量的路径path中
zip_command = "rar a %s %s" %(target,''.join(source))

# Run the backup
#设置winrar到path环境中，这里已经手动添加，如图
#os.system('set Path=%Path%;C:\Program Files\WinRAR')
if os.system(zip_command)==0:
    print('Successful backup to', target)
else:
    print('Backup FAILED')
    
#paths = os.listdir( target_dir )
#for path in paths:
#    filePath = os.path.join( target_dir,paths )
#        if os.path.isfile( filePath ):
#            print (filePath)
#            break
#print(filePath)
#print(paths)
#test_target_dir = 'F:\\python\\backup\\'
test_target_dir = 'E:\\操作手册'
path = os.listdir( test_target_dir )
#print('backup file', path)




# 时间格式
#time_format = "%a %b %d %H:%M:%S %Y"
# 取得当前时间
#today = datetime.datetime.now()
# 定义4个星期
#four_weeks = datetime.timedelta(weeks=6)
# 4星期前的日期
#four_weeks_ago = today - four_weeks
# 将时间转成timestamps
#four_weeks_ago_timestamps = time.mktime(four_weeks_ago.timetuple())
#if float(file_timestamp) <= float(four_weeks_ago_timestamps):
#    fh.write(str(today) + "\t" + str(file_time_f) + "\t" + os.path.join(dir,f) + "\n")
#    os.remove(os.path.join(dir,f))



for fname in path:
#    print ('filename', fname)    
    time_format = "%a %b %d %H:%M:%S %Y"
    today = datetime.datetime.now()
#    four_weeks = datetime.timedelta(weeks=1)
    four_weeks = datetime.timedelta(days=6)
    four_weeks_ago = today - four_weeks
    four_weeks_ago_timestamps = time.mktime(four_weeks_ago.timetuple())
    file_timestamp = os.path.getmtime(os.path.join(test_target_dir,fname))
#    print (fname,file_timestamp,four_weeks_ago_timestamps)

    if float(file_timestamp) <= float(four_weeks_ago_timestamps):
        print (fname,test_target_dir,file_timestamp,four_weeks_ago_timestamps)
        os.remove(os.path.join(test_target_dir,fname))
        
#         (y1, m1, d1) = (int(x) for x in fname.split('-'))
#         date1 = datetime.date(y1, m1, d1)
#         datenow = time.strftime('%Y%m%d')
#         y2 = int(datenow[:4])
#         m2 = int(datenow[4:6])
#         d2 = int(datenow[6:])
#         date2 = datetime.date(y2, m2, d2)
#        if (date2 - date1).days > 30:
#            print ('Expired dir! Deleting directory... ', fname)
#             distutils.dir_util.remove_tree(os.path.join("k:",name))
#print 'Old directory deleting done!'


#paths = 'code_2014-11-26_165748.zip'
#filePath = os.path.join( target_dir, paths )
#os.remove( filePath )
#if os.path.isfile( filePath ):
#     print('Delete FAILED', filePath)
#else:
#     print('Delete Successful', filePath)
